package com.zhiyou100.poi;

import lombok.SneakyThrows;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFCreationHelper;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;

/**
 * 创建 Excel
 *
 * @author yang
 * @version 1.0.0
 * @date 2020-09-14 11:03
 */
public class Test01CreatExcel {
    @SneakyThrows
    public static void main(String[] args) {
        //0 导入poi的jar
        ArrayList<Student> list = new ArrayList<>();
        list.add(new Student(1001, "韩梅梅", "女", 19.5f));
        list.add(new Student(1002, "韩庚", "男", 49.5f));
        //1 创建工作簿对象：
        HSSFWorkbook book = new HSSFWorkbook();
        //2 创建一个工作表：sheet
        Sheet sheet1 = book.createSheet("firstSheet");
        //3 创建一行：一般第一行是列标题   行索引从0开始
        Row row1 = sheet1.createRow(0);
        //4 创建第一行的列：   列索引从0开始
        //创建单元格的背影样式
        HSSFCellStyle style = book.createCellStyle();
        //设置图案颜色
        style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
        //设置图案样式
        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//        Cell cell11 = row1.createCell(0);
//        cell11.setCellValue("学号");
//        cell11.setCellStyle(style);
        String[] names = new String[]{"学号", "姓名", "性别", "分数", "日期"};
        for (int i = 0; i < names.length; i++) {
            Cell cell1i = row1.createCell(i);
            cell1i.setCellValue(names[i]);
            cell1i.setCellStyle(style);
        }
        //6吧list中学生的信息写道excel中  每个对应一行
        for (int i = 0; i < list.size(); i++) {
            Row rowi = sheet1.createRow(i + 1);
            rowi.createCell(0).setCellValue(list.get(i).getSid());
            rowi.createCell(1).setCellValue(list.get(i).getSname());
            rowi.createCell(2).setCellValue(list.get(i).getSex());
            rowi.createCell(3).setCellValue(list.get(i).getScore());
            // 创建日期单元格
            final Cell cell4 = rowi.createCell(4);
            // 设置日期为当前日期
            cell4.setCellValue(new Date());

            // 创建一个格式
            final HSSFCellStyle cellStyle4 = book.createCellStyle();
            final HSSFCreationHelper creationHelper = book.getCreationHelper();
            // 设置格式是为日期
            cellStyle4.setDataFormat(
                    creationHelper.createDataFormat().getFormat("yyyy-MM-dd hh:mm")
            );
            // 为 日期单元格设置为日期格式
            cell4.setCellStyle(cellStyle4);
        }
        //格式化：：ctrl+alt_l
        //7 创建一个输出流与目的文件关联
        FileOutputStream fout = new FileOutputStream("/Users/yang/Documents/git/java/oracle/src/main/resources/excel/student01.xls");
        //8 通过输出流吧内存中的hssf刷新到excel目的文件中
        book.write(fout);
        fout.close();
    }
}
